package com.ruoyi.publish.service;

import com.ruoyi.publish.domain.AssistInfo;
import com.ruoyi.publish.domain.IdAcceptRegister;

import java.util.List;

/**
 * 鉴定受理登记Service接口
 *
 * @author confusefox
 * @date 2020-11-04
 */
public interface IIdAcceptRegisterService {
    /**
     * 查询鉴定受理登记
     *
     * @param id 鉴定受理登记ID
     * @return 鉴定受理登记
     */
    public IdAcceptRegister selectIdAcceptRegisterById(Long id);

    /**
     * 查询鉴定受理登记列表
     *
     * @param idAcceptRegister 鉴定受理登记
     * @return 鉴定受理登记集合
     */
    public List<IdAcceptRegister> selectIdAcceptRegisterList(IdAcceptRegister idAcceptRegister);

    /**
     * 新增鉴定受理登记
     *
     * @param idAcceptRegister 鉴定受理登记
     * @return 结果
     */
    public int insertIdAcceptRegister(IdAcceptRegister idAcceptRegister);

    /**
     * 修改鉴定受理登记
     *
     * @param idAcceptRegister 鉴定受理登记
     * @return 结果
     */
    public int updateIdAcceptRegister(IdAcceptRegister idAcceptRegister);

    /**
     * 批量删除鉴定受理登记
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteIdAcceptRegisterByIds(String ids);

    /**
     * 删除鉴定受理登记信息
     *
     * @param id 鉴定受理登记ID
     * @return 结果
     */
    public int deleteIdAcceptRegisterById(Long id);

    /**
     * 是否启用状态修改
     *
     * @param idAcceptRegister 鉴定受理登记
     * @return 结果
     */
    public int changeStatus(IdAcceptRegister idAcceptRegister);


    /**
     * 导入鉴定案件
     *
     * @param idAcceptRegisterList 用户数据列表
     * @param isUpdateSupport      是否更新支持，如果已存在，则进行更新数据
     * @param operName             操作用户
     * @return 结果
     */
    public String importIdAcceptRegister(List<IdAcceptRegister> idAcceptRegisterList, Boolean isUpdateSupport, String operId, String operName, String year);


    /**
     * 受理登记 word一键更新
     *
     * @param idAcceptRegister 鉴定受理登记
     * @return 结果
     */
    public int ApprovalRecordRefreshByRecordId(Long id);

    /**
     * 审批信息
     *
     * @param handleUser
     * @param handleUserName
     * @param idAcceptRegister
     * @return
     */
    public int handleApproval(String handleUser, String handleUserName, IdAcceptRegister idAcceptRegister);

    /**
     * 获取最新的鉴定组长
     *
     * @return
     */
    public String selectTopNewGroupId();

    /**
     * 根据id获取数据
     *
     * @param ids
     * @return
     */
    public List<IdAcceptRegister> selectRecordByIds(String[] ids);

    /**
     * 查询协查函信息
     * @return
     */
    public AssistInfo findAssistInfo(String sampleIds,String assistType);

    /**
     * 添加协查函信息
     * @param assistInfo
     * @return
     */
    public int insertAssistInfo(AssistInfo assistInfo);

    /**
     *修改协查函信息
     * @param assistInfo
     * @return
     */
    public int updateAssistInfo(AssistInfo assistInfo);

    /**
     * 查询样本是否已生成协查函
     * @param id
     * @return
     */
    public AssistInfo queryAssist(String id);
}
